<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // Class的基本语法
        // ES6 提供了更接近传统语言的写法，引入了 Class（类）这个概念，作为对象的模板。通过class关键字，可以定义类。

        //1. 使用ES5的构造函数来实现对象的生成
        function Person(name,age){
            this.name = name;
            this.age = age;
            
        }
        Person.prototype.info = function(){
            return `大家好！我叫${this.name},今年${this.age}岁！`;
        }
        // 实例化
        const p = new Person("张三",20);
        console.log(p);
        console.log(p.info());

        //2. 采用ES6的Class的基本语法实现对象的生成
        // 声明一个名为Person2的类
        class Person2 {
            // 在类中定义一个构造方法，名字必须为constructor，会在new 类时自动调用
            constructor(name,age) {
                this.name = name;
                this.age = age;
            }
            // 定义普通方法
            info() {
                return `大家好！我叫${this.name},今年${this.age}岁！`;
            }
        }

        // 使用（实例化）, new Person2类实例化一个对象，会自动调用类中的构造方法
        const p2 = new Person2("李四",22);
        console.log(p2);
        console.log(p2.info()); // 调用方法
    </script>
</body>
</html>